Server blades are rapidly becoming popular in data center technology. A server blade is basically a server on a card, i.e., a single motherboard that contains a full computer system, including processor(s), memory, network connections and associated electronics. Typically, power, cooling, network access, and storage are not contained on the server blade. Instead, these necessary resources, which may be shared among a collection of server blades, are accessed through the backplane of a chassis, or enclosure; that is, the power and bus connections are a part of the cabinet that houses the collection of server blades.
Server blades are more cost effective than their rack-optimized predecessors for several reasons. Cost is reduced by sharing common resources such as power supplies. Network access for all server blades in a chassis reduces cabling complexity and allows for relocation of server resources. Server blades may also be pre-packed with software, thus reducing the cost of deploying applications. Furthermore, server blades may be managed far more effectively than independent rack-mounted or standalone pedestal servers. For example, using server blades, a data center administrator may install and cable the chassis only; the individual server blades do not require cabling. Thus, adding new computer resources is as easy as plugging in a new server blade, similar to adding a hard drive. Moreover, each server blade runs its own instance of the operating system. Consequently, data center administrators may designate individual server blades for different applications or end users, and may insert or remove (hot plug) these individual server blades without affecting the operation of other server blades in the same chassis.
To maximize the density of server blades, individual server blades typically have no or minimal input/output (I/O). For example, in server blade environments, storage typically is not contained on the server blade, and is centralized instead on a SAN (Storage Area Network) or LAN (Local Area Network). Individual server blades access storage typically via Ethernet and/or Fibre Channel links that are part of the chassis backplane. One of the key impediments, however, is that even though techniques for locating data on SAN or LAN based storage are well-known, each server blade still requires at least one local disk drive for boot, operating system (OS), and pagefile. Additionally, to ensure that the server blade remains available in case the boot drive fails, conventional server blade architectures employ RAID 1 (Redundant Array of Independent Disks 1) mirroring to the boot drive, resulting in a minimum of two drives for each server blade. It is not uncommon for a single, fully populated rack to house tens to hundreds of server blades, requiring twice that number of disk drives. Two drives per server blade not only are expensive, but also consume significant volume and power.
One approach utilized to solve this problem is the concept of “diskless server blades.” A diskless server blade boots from a dedicated virtual boot drive on the SAN. This virtual drive may be a slice of a large SAN-based RAID volume (e.g., RAID 1 drive pair), which might be partitioned into hundreds of virtual boot drives, each mapped to a specific server blade. The problem with diskless server blades, however, is that the current operating systems and applications assume that boot/page file storage is closely coupled to the server blade. Moreover, when hundreds of server blades compete for access to the same physical resources, boot/page performance may be severely compromised, resulting in unpredictable latency.
Thus, it would be desirable to have an apparatus and method that resolve the tension between two fundamentally conflicting objectives: the desire to reduce the number of drives, and associated real estate and power consumption in a chassis housing multiple server blades, and the desire to maintain compatibility with operating systems and applications, which assume closely coupled “per server” storage, and which depend upon this close coupling to function.